branch prediction - significado y definición. Qué es branch prediction
Diclib.com
Diccionario en línea

Qué (quién) es branch prediction - definición

DIGITAL CIRCUIT THAT GUESSES WHICH WAY A BRANCH WILL GO TO IMPROVE FLOW IN THE INSTRUCTION PIPELINE
Branch prediction; Branch predictors; Gshare; Gshare predictor; Global predictor; Local predictor; Two-bit predictor; Branch misprediction; Misprediction; Jump prediction; Branch Prediction; Branch Predictor Unit; Branch prediction unit; Branch Prediction Unit; Dynamic branch prediction; Branch prediction system; Neural branch prediction; Branch-mispredictions
  • Figure 2: State diagram of 2-bit saturating counter
  • Example of 4-stage pipeline. The colored boxes represent instructions independent of each other.
  • url-status=dead}}</ref>

branch prediction         
<processor, algorithm> A technique used in some processors with instruction prefetch to guess whether a {conditional branch} will be taken or not and prefetch code from the appropriate location. When a branch instruction is executed, its address and that of the next instruction executed (the chosen destination of the branch) are stored in the Branch Target Buffer. This information is used to predict which way the instruction will branch the next time it is executed so that instruction prefetch can continue. When the prediction is correct (and it is over 90% of the time), executing a branch does not cause a pipeline break. Some later CPUs simply prefetch both paths instead of trying to predict which way the branch will go. An extension of the idea of branch prediction is {speculative execution}. (1998-03-14)
Branch predictor         
In computer architecture, a branch predictor is a digital circuit that tries to guess which way a branch (e.g.
Branch, Missouri         
UNINCORPORATED COMMUNITY IN CAMDEN COUNTY, MISSOURI, UNITED STATES
Branch, MO
Branch is an unincorporated community in southwestern Camden County, Missouri, United States. It is located on Route 73 one mile south of U.

Wikipedia

Branch predictor

In computer architecture, a branch predictor is a digital circuit that tries to guess which way a branch (e.g., an if–then–else structure) will go before this is known definitively. The purpose of the branch predictor is to improve the flow in the instruction pipeline. Branch predictors play a critical role in achieving high performance in many modern pipelined microprocessor architectures such as x86.

Two-way branching is usually implemented with a conditional jump instruction. A conditional jump can either be "taken" and jump to a different place in program memory, or it can be "not taken" and continue execution immediately after the conditional jump. It is not known for certain whether a conditional jump will be taken or not taken until the condition has been calculated and the conditional jump has passed the execution stage in the instruction pipeline (see fig. 1).

Without branch prediction, the processor would have to wait until the conditional jump instruction has passed the execute stage before the next instruction can enter the fetch stage in the pipeline. The branch predictor attempts to avoid this waste of time by trying to guess whether the conditional jump is most likely to be taken or not taken. The branch that is guessed to be the most likely is then fetched and speculatively executed. If it is later detected that the guess was wrong, then the speculatively executed or partially executed instructions are discarded and the pipeline starts over with the correct branch, incurring a delay.

The time that is wasted in case of a branch misprediction is equal to the number of stages in the pipeline from the fetch stage to the execute stage. Modern microprocessors tend to have quite long pipelines so that the misprediction delay is between 10 and 20 clock cycles. As a result, making a pipeline longer increases the need for a more advanced branch predictor.

The first time a conditional jump instruction is encountered, there is not much information to base a prediction on. But the branch predictor keeps records of whether branches are taken or not taken. When it encounters a conditional jump that has been seen several times before, then it can base the prediction on the history. The branch predictor may, for example, recognize that the conditional jump is taken more often than not, or that it is taken every second time.

Branch prediction is not the same as branch target prediction. Branch prediction attempts to guess whether a conditional jump will be taken or not. Branch target prediction attempts to guess the target of a taken conditional or unconditional jump before it is computed by decoding and executing the instruction itself. Branch prediction and branch target prediction are often combined into the same circuitry.